@echo off
chcp 65001 >nul
echo.
echo ========================================
echo POS项目诊断并编译脚本
echo ========================================
echo.

:: 进入项目根目录
%~d0
cd %~dp0

echo [诊断信息]
echo.
echo 当前目录: %CD%
echo.

:: 检查Java版本
echo [1] Java版本检查:
java -version 2>&1
echo.

:: 检查Maven版本
echo [2] Maven版本检查:
call mvn -version 2>&1
echo.

echo ========================================
echo 开始编译流程
echo ========================================
echo.

:: 步骤1: 清理target目录
echo [步骤1/4] 清理所有target目录...
echo.

for /d %%i in (ruoyi-admin ruoyi-common ruoyi-framework ruoyi-generator ruoyi-pos ruoyi-quartz ruoyi-system) do (
    if exist %%i\target (
        echo 清理 %%i\target...
        rd /s /q %%i\target 2>nul
    )
)

echo.
echo [步骤2/4] 执行Maven清理...
echo.
call mvn clean -q

echo.
echo [步骤3/4] 编译项目（跳过测试）...
echo.
echo 开始编译，请耐心等待...
echo.

:: 使用更详细的编译命令
call mvn clean compile -DskipTests -e -X > compile_log.txt 2>&1

:: 显示最后50行
echo 编译日志（最后50行）:
echo ----------------------------------------
powershell -Command "Get-Content compile_log.txt -Tail 50"
echo ----------------------------------------
echo.

:: 检查是否成功
findstr /C:"BUILD SUCCESS" compile_log.txt >nul
if %errorlevel% == 0 (
    echo.
    echo ========================================
    echo ✓ 编译成功！
    echo ========================================
    echo.
    echo 完整日志已保存到: compile_log.txt
    echo.
) else (
    echo.
    echo ========================================
    echo ✗ 编译失败！
    echo ========================================
    echo.
    echo 请检查上方的错误信息
    echo 完整日志已保存到: compile_log.txt
    echo.
    
    :: 尝试查找具体错误
    echo 主要错误信息:
    echo ----------------------------------------
    findstr /C:"[ERROR]" compile_log.txt | findstr /V /C:"Re-run Maven"
    echo ----------------------------------------
    echo.
)

echo [步骤4/4] 生成问题分析报告...
echo.

:: 创建问题分析报告
(
    echo POS项目编译诊断报告
    echo ========================================
    echo 生成时间: %date% %time%
    echo.
    echo Java版本:
    java -version 2>&1
    echo.
    echo Maven版本:
    call mvn -version 2>&1
    echo.
    echo 编译结果:
    findstr /C:"BUILD SUCCESS" compile_log.txt >nul && echo 成功 || echo 失败
    echo.
    echo 主要错误（如果有）:
    findstr /C:"[ERROR]" compile_log.txt | findstr /V /C:"Re-run Maven"
) > diagnostic_report.txt

echo 诊断报告已保存到: diagnostic_report.txt
echo.

pause

